#include <iostream>
#include <string>
using namespace std;

// 定义Dog类
class Dog{
public:
  // 属性(成员变量/字段)
  string name;
  int age;
  string color;
  string type;
  double weight;      
  
  // 行为(成员函数/方法)
  void shut(){
    cout<<name<<":旺旺旺"<<endl;
  }
  void sleep(){
    cout<<name<<":睡大觉"<<endl;
  }                                          
};

int main(){
  // 通过类创建对象
  Dog dog;
  // 给对象的属性进行初始化
  dog.name="旺财";
  dog.age=1;
  dog.color="黄色";
  dog.type="金毛";
  dog.weight=10;

  // 和dog对象交互
  cout<<"旺财，我今年旺不旺？"<<endl;
  dog.shut();

  // 动态方式创建
  Dog *d2 = new Dog();
  d2->name="大白";
  d2->color="白色";
  d2->sleep();

  // 手动释放动态创建的内存
  delete(d2);
  cout<<"d2:"<<d2<<endl;
  d2=nullptr; // 将指向已释放的对象指针设置为空指针

  if(d2!=nullptr){
    cout<<d2->name<<endl;
  }

  return 0;                                                                                    
}